Votre système fonctionne sous Linux avec plusieurs cartes d'interface réseau (NIC) physiques et chaque carte a sa propre passerelle par défaut. Par défaut, vous ne pouvez configurer qu'une seule passerelle par défaut sur un système.
Dans notre exemple, nous allons considérer 2 NICs (eth0 et eth1) activées avec une passerelle par défaut configurée sur l'interface eth0.
Sur ce schéma, nous pouvons imaginer deux cas différents :
1 - Le flux entrant dans eth0 sera renvoyé par eth0 (passerelle par défaut).
2 - Le flux entrant dans eth1 sera renvoyé par eth0 (passerelle par défaut).
Dans le premier cas, il n'y a pas de problème, chaque carte réseau fonctionnera indépendamment mais dans le second cas, si vous avez configuré la passerelle par défaut sur eth0, quelle que soit la carte réseau qui reçoit la requête, elle répondra par eth0 qui est la passerelle par défaut.
La solution sera d'utiliser un programme appelé iproute2, qui est inclus et installé dans toutes les distributions Linux actuelles. Le résultat attendu est le suivant :
1 - Le flux entrant dans eth0 est renvoyé par eth0.
2 - Le flux entrant dans eth1 est renvoyé par eth1
Cela devrait donc ressembler au schéma suivant :
Tout d'abord, vous devrez définir de nouvelles tables de routage dans le fichier /etc/iproute2/rt_tables en définissant vos propres tables. Ici, nous définissons deux nouvelles tables appelées rt0 et rt1 :
# reserved values
#
255 local
254 main
253 default
0 unspec
# local
#
125 rt0
225 rt1
Ensuite, vous devrez configurer vos cartes réseau (sous /etc/network/interfaces si vous êtes sur un système de type Debian) comme ci-dessous :
auto eth0
iface eth0 inet static
address 192.168.50.250
netmask 255.255.255.0
network 192.168.50.0
gateway 192.168.50.254
broadcast 192.168.50.255
post-up /sbin/ip route add default via 192.168.50.254 dev eth0 table rt0
post-up /sbin/ip rule add from 192.168.50.0/24 table rt0
pre-down /sbin/ip route del default via 192.168.50.254 dev eth0 table rt0
pre-down /sbin/ip rule del from 192.168.50.0/24 table rt0
auto eth1
iface eth1 inet static
address 10.0.10.10
netmask 255.255.0.0
network 10.0.0.0
broadcast 10.0.255.255
post-up /sbin/ip route add default via 10.0.255.254 dev eth1 table rt1
post-up /sbin/ip rule add from 10.0.0.0/16 table rt1
pre-down /sbin/ip route del default via 10.0.255.254 dev eth1 table rt1
pre-down /sbin/ip rule del from 10.0.0.0/16 table rt1
Et maintenant, redémarrez votre service réseau pour mettre en place cette nouvelle configuration. Celle-ci sera permanente.
Vous pouvez maintenant vous connecter à votre serveur en utilisant les deux interfaces, et il répondra automatiquement et correctement par la bonne passerelle !